package com.cloud.DrugManagement.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.cloud.DrugManagement.pojo.DrugPrice;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

/**
 * @author zhozixiong
 * @date 2023/02/08
 */
@Mapper
@Repository
public interface DrugPriceMapper extends BaseMapper<DrugPrice> {

    /**
     * 分页查询指定供应商供应的商品
     * @param page 要查询的页面
     * @param sid 供应商编号
     * @param parameter 查询参数
     * @return 该页面的商品供应信息
     */
    Page<DrugPrice> searchAllBySidOrDidOrDname(Page page, @Param("sid") int sid, @Param("parameter") Object parameter);

    /**
     * 查询商品批发价格
     * @param did 商品编号
     * @param sid 供应商编号
     * @return 商品价格
     */
    Double searchPriceByDidAndSid(@Param("did") Integer did, @Param("sid") Integer sid);

    /**
     * 修改商品批发价格
     * @param did 商品编号
     * @param sid 供应商编号
     * @param price 批发价格
     * @return 受影响行数
     */
    int updatePriceByDidAndSid(@Param("did") Integer did, @Param("sid") Integer sid, @Param("price") Double price);

    /**
     * 新增商品批发价格
     * @param did 商品编号
     * @return 受影响行数
     */
    int insert(@Param("did") Integer did, @Param("sid") Integer sid, @Param("retailPrice") Double retailPrice);

    /**
     * 删除供应商指定商品的供货价格
     * @param did 商品编号
     * @param sid 供应商编号
     * @return 受影响行数
     */
    int delByDidAndSid(@Param("did") Integer did, @Param("sid") Integer sid);

    /**
     * 删除供应商所有供货价格
     * @param sid 供应商编号
     * @return 受影响行数
     */
    int delBySid(@Param("sid") Integer sid);
}
